﻿using ibba.src.sl.recursos.MVVM;

namespace ibba.src.norisk.ViewModels
{
    public abstract class ViewModelBaseCadastro<T> : ViewModelBase
    {
        private T _entidade;
        public T Entidade
        {
            get { return _entidade; }
            set { base.SetValue("Entidade", ref _entidade, value); }
        }
        
        public abstract void ObterPorId(int pId);
        public abstract void Excluir();
        public abstract void Salvar();

        //public abstract bool EnabledSaveButton { get; }
        
        public virtual void Visualizar(int pId)
        {
            base.StateView = StateViewType.Viewing;
            ObterPorId(pId);
        }

        public virtual void Editar()
        {
            base.StateView = StateViewType.Changing;
        }

        public virtual void Cancelar()
        {
            if (base.StateView == StateViewType.Inserting)
            {
                base.StateView = StateViewType.None;
            }
            else if (StateView == StateViewType.Changing)
            {
                base.StateView = StateViewType.Viewing;
            }

            //RaisePropertyChanged("EnabledSaveButton");
        }
    }
}
